package com.dxf.sysadmin.utils;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.dxf.sysadmin.entity.EvaluateBo;
import com.dxf.sysadmin.entity.EvaluteItem;
import com.dxf.sysadmin.entity.EvaluteTarget;
import com.dxf.sysadmin.mapper.AddEvaluateItemMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
@Slf4j
public class ExcelListener extends AnalysisEventListener<EvaluateBo> {

    private static AddEvaluateItemMapper addEvaluateItemMapper; //关键2

    @Autowired  //关键3
    public void setAddEvaluateItemMapper (AddEvaluateItemMapper addEvaluateItemMapper){
        ExcelListener.addEvaluateItemMapper = addEvaluateItemMapper;
    }
    public long id = 0;
    public long id1 = 0;
    public long id2 = 0;
    public long id3 = 0;
    public double code = 0;
    public double code1 = 0;
    public double code2 = 0;
    public double code3 = 0;
    public int sortCode = 10;
    public int sortCode1 = 10;
    public int sortCode2 = 10;
    public int sortCode3 = 10;
    public int sort = 10;
    public int sort1 = 10;
    public int sort2 = 10;
    public int sort3 = 10;

    /*
     * 读取每行调用
     * */
    @Override
    public void invoke(EvaluateBo evaluateBo, AnalysisContext analysisContext) {
        long type= addEvaluateItemMapper.SelectEvaId(10);
        System.out.println(":"+evaluateBo);
        if(!(evaluateBo.getContent()==null)){
            id=0;
            sortCode1 = 10;
            EvaluteTarget evaluateItem = new EvaluteTarget();
            evaluateItem.setParentId(id);
            evaluateItem.setName(evaluateBo.getContent());
            evaluateItem.setWeight(evaluateBo.getPower());
            evaluateItem.setTypeId(type);
            evaluateItem.setSortCode(sortCode);
            addEvaluateItemMapper.addEvaluteTarget(evaluateItem);
            id=evaluateItem.getId();
            code = 100;
            sort = 10;
            sortCode+=10;
        }
        if(!(evaluateBo.getContent1()==null)&&(evaluateBo.getPower1()!=null)){
            sortCode2 = 10;
            EvaluteTarget evaluateItem = new EvaluteTarget();
            evaluateItem.setParentId(id);
            evaluateItem.setName(evaluateBo.getContent1());
            evaluateItem.setWeight(evaluateBo.getPower1());
            evaluateItem.setTypeId(type);
            evaluateItem.setSortCode(sortCode1);
            addEvaluateItemMapper.addEvaluteTarget(evaluateItem);
            id1=evaluateItem.getId();
            code1 = 100;
            sort1 = 10;
            sortCode1+=10;
        }
        if(!(evaluateBo.getContent2()==null)&&(evaluateBo.getPower2()!=null)){
            sortCode3 = 10;
            EvaluteTarget evaluateItem = new EvaluteTarget();
            evaluateItem.setParentId(id1);
            evaluateItem.setName(evaluateBo.getContent2());
            evaluateItem.setWeight(evaluateBo.getPower2());
            evaluateItem.setTypeId(type);
            evaluateItem.setSortCode(sortCode2);
            addEvaluateItemMapper.addEvaluteTarget(evaluateItem);
            id2=evaluateItem.getId();
            code2 = 100;
            sort2 = 10;
            sortCode2+=10;
        }
        if(!(evaluateBo.getContent3()==null)&&(evaluateBo.getPower3()!=null)){
            EvaluteTarget evaluateItem = new EvaluteTarget();
            evaluateItem.setParentId(id2);
            evaluateItem.setName(evaluateBo.getContent3());
            evaluateItem.setWeight(evaluateBo.getPower3());
            evaluateItem.setTypeId(type);
            evaluateItem.setSortCode(sortCode3);
            addEvaluateItemMapper.addEvaluteTarget(evaluateItem);
            id3=evaluateItem.getId();
            code3 = 100;
            sort3 = 10;
            sortCode3+=10;
        }
        if(!(evaluateBo.getContent1()==null)&&(evaluateBo.getPower1()==null)){
            EvaluteItem evaluteIt = new EvaluteItem();
            evaluteIt.setContent(evaluateBo.getContent1());
            evaluteIt.setTargetId(id);
            evaluteIt.setScore(code);
            evaluteIt.setSortCode(sort);
            sort+=10;
            code -=20;
            addEvaluateItemMapper.addEvaluateIt(evaluteIt);
        }
        if(!(evaluateBo.getContent2()==null)&&(evaluateBo.getPower2()==null)){
            EvaluteItem evaluteIt = new EvaluteItem();
            evaluteIt.setContent(evaluateBo.getContent2());
            evaluteIt.setTargetId(id1);
            evaluteIt.setScore(code1);
            evaluteIt.setSortCode(sort1);
            sort1+=10;
            code1 -=20;
            addEvaluateItemMapper.addEvaluateIt(evaluteIt);
        }
        if(!(evaluateBo.getContent3()==null)&&(evaluateBo.getPower3()==null)){
            EvaluteItem evaluteIt = new EvaluteItem();
            evaluteIt.setContent(evaluateBo.getContent3());
            evaluteIt.setTargetId(id2);
            evaluteIt.setScore(code2);
            evaluteIt.setSortCode(sort2);
            sort2+=10;
            code2 -=20;
            addEvaluateItemMapper.addEvaluateIt(evaluteIt);
        }
        if(!(evaluateBo.getCon()==null)){
            EvaluteItem evaluteIt = new EvaluteItem();
            evaluteIt.setContent(evaluateBo.getCon());
            evaluteIt.setTargetId(id3);
            evaluteIt.setScore(code3);
            evaluteIt.setSortCode(sort3);
            sort3+=10;
            code3 -=20;
            addEvaluateItemMapper.addEvaluateIt(evaluteIt);
        }
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

    }
}

